home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
FAQSYS18.ZIP
/
FAQS.DAT
/
CMF_FORM.TXT
< prev
next >
Wrap
Internet Message Format
|
1995-10-13
|
4KB
Date: Wed, 9 Mar 94 16:14:20 PST
From: awiggins@sdcc5.UCSD.EDU (Adam Wiggins)
Subject: Re: Need CMF format
Newsgroups: rec.games.programmer
> I need the format of CMF files, particularly the FM instruments part.
>Thanks in advance.
CMF consists of 3 different block structures: header block, instrument block
and a music block.
Header Block.
Offset Description
00-03 File ID'CTMF'
04-05 Version # (currently 1.10)
06-07 Offset of instrument block from start of file
08-09 Offset of music block from start of file
0A-0B Ticks per quarter note (default=120)
0C-0D Clock ticks per second (default=96)
0E-0F Offset of music title from start of file (0=none)
10-11 Offset of composer name (0=none)
12-13 Offset of remarks (0=none)
14-23 Channel-in-use table (16 bytes long)
24-25 # of instruments used
26-27 Basic tempo
28- Title, composer and/or remarks
Instrument Block
Each instrument block is 16 bytes long.
Offset Description
00 Modulator characteristic
01 Carrier characteristic
bit 7 Pitch Vibrato
6 Amplitude Vibrato
5 Sustaining Sound
4 Envelope Scaling
3-0 Frequency Multiplier
02 Modulator Scaling/Output Level
03 Carrier Scaling/Output Level
bit 7-6 Level Scaling
5-0 Output Level
04 Modulator Attack/Delay
05 Carrier Attack/Delay
bit 7-4 Attack Rate
3-0 Delay Rate
06 Modulator Sustain Level/Release Rate
07 Carrier Sustain Level/Release Rate
bit 7-4 Sustain Level
3-0 Release Rate
08 Modulator Wave Select
09 Carrier Wave Select
bit 7-2 (all cleared)
0-1 Wave Select
0A Feedback/Connection
bit 7-4 (cleared)
3-1 Modulator Feedback
0 Connection
0B-0F Not used (Reserved)
Music Block
The music block is single track, polyphonic, with a max of 16 channels.
It adheres to the Standard Midi File format. It is like:
Music block = <delta time> <Midi event> <delta time> <Midi event>...
where: Delta time = amount of time before Midi event (in ticks)
Midi event = any Midi channel message
Here is where the book gets foggy. Some Midi events are Control Change events
but it doesn't say if all are like that. These are the only ones discussed:
Control Number Control Data
66h 1-127 (Used as markers in music)
67h 0-Melody mode
1-Rhythm mode
I don't know of the 0 or 1 are bits or follow the Control Number but it
appears that there will be a 66h then a number between 1 and 127
designating seminote length (1 seminote = 1/128 of a tick or something)
or a 67h and a 0 or 1 to determine the mode. In Rhythm mode, the last
5 channels are:
Channel Rhythm
12 Bass Drum
13 Snare
14 Tom-tom
15 Top-cymbal
16 High-hat
Control Number Control Data
68h 0-127 (Changes pitch upward by the # of 1/128 seminotes.
0=Cancel pitch change)
69h 0-127 (Changes pitch downward by the # of 1/128
seminotes. 0=Cancel pitch change)
Sorry about the ^M's.
...Boone